01-Auto-Scaling개념

Auto Scaling 개념

Auto Scaling이란?

놀이공원 비유

Auto Scaling = 상황에 맞춰 직원(서버) 수를 자동 조절

현재 vs 목표 구조

현재 상황

사용자 적음: Web서버 1대 (비용 낭비)
사용자 많음: Web서버 1대 (성능 부족)

Auto Scaling 적용 후

사용자 적음: Web서버 1대 (비용 절약)
사용자 보통: Web서버 2대 (적당한 성능)
사용자 많음: Web서버 4대 (충분한 성능)

Auto Scaling의 장점

1. 비용 절약

새벽 시간 (사용자 없음):
서버 1대만 운영 → 75% 비용 절약

2. 성능 향상

점심 시간 (사용자 몰림):
서버 4대로 확장 → 4배 빠른 처리

3. 고가용성

서버 1대 고장나도:
나머지 서버들이 계속 서비스
새 서버 자동 생성

Auto Scaling 구성 요소

1. Launch Template (시작 템플릿)

2. Auto Scaling Group (ASG)

3. Scaling Policy (스케일링 정책)

실습에서 구현할 구조

Web 서버용 Auto Scaling

Launch Template: webapp-web-template
- AMI: Amazon Linux 2023
- 타입: t2.micro
- 보안 그룹: 기존 Web 서버 보안 그룹
- User Data: Apache + 프록시 설정 자동 설치

Auto Scaling Group: webapp-web-asg
- 최소: 1대
- 원하는: 2대  
- 최대: 4대
- 대상 그룹: webapp-web-targets 자동 등록

스케일링 조건

Scale Out (확장):
- CPU 사용률 70% 이상 5분 지속 → 서버 1대 추가

Scale In (축소):
- CPU 사용률 30% 이하 5분 지속 → 서버 1대 제거

Auto Scaling 동작 과정

1. 평상시 (CPU 50%)

현재: 2대 서버 운영
동작: 변화 없음

2. 트래픽 증가 (CPU 80%)

1분차: CPU 80% 감지
5분차: 지속 확인 → 서버 1대 추가 시작
7분차: 새 서버 준비 완료 → 총 3대 운영

3. 트래픽 감소 (CPU 20%)

1분차: CPU 20% 감지  
5분차: 지속 확인 → 서버 1대 제거 시작
7분차: 서버 제거 완료 → 총 2대 운영

Launch Template 중요성

기존 서버 설정 확인

Auto Scaling으로 만들어지는 새 서버는 기존 서버와 똑같이 동작해야 합니다:

기존 Web 서버가 하는 일:

  1. Apache HTTP Server 실행
  2. 정적 파일 직접 서비스 (/webapp/index.html)
  3. 동적 요청을 WAS 서버로 프록시 (/webapp/ → Tomcat)
  4. WAS 서버 Private IP로 올바른 프록시 설정

Launch Template에서 재현해야 할 설정

# 기존 Web 서버의 프록시 설정 확인
ssh -i webapp-keypair.pem ec2-user@Web서버-Public-IP
sudo cat /etc/httpd/conf.d/webapp-proxy.conf

# 이 설정을 Launch Template User Data에서 자동으로 생성해야 함

WAS 서버 정보 수집

Launch Template을 만들기 전에 WAS 서버 정보를 확인해둡시다.

WAS 서버 Private IP 확인

  1. EC2 콘솔인스턴스 → WAS 서버 클릭
  2. 세부 정보에서 프라이빗 IPv4 주소 기록
  3. 예시: 10.0.2.45

WAS 서버 동작 확인

# Web 서버에서 WAS 서버 연결 테스트
ssh -i webapp-keypair.pem ec2-user@Web서버-Public-IP
curl http://WAS서버-Private-IP:8080/webapp/

# JSP 페이지가 정상 응답하는지 확인

비용 계산 예시

기존 방식 (고정 1대)

24시간 × 1대 × 0.0116달러 = 0.28달러/일

Auto Scaling 방식

새벽(6시간): 1대 × 0.0116달러 = 0.07달러
낮시간(12시간): 2대 × 0.0116달러 = 0.28달러
저녁(6시간): 3대 × 0.0116달러 = 0.21달러
총합: 0.56달러/일

더 많은 비용이지만 더 좋은 성능과 안전성을 얻습니다.

주의사항

1. 너무 민감한 설정

CPU 60% → 즉시 확장
문제: 일시적 부하에도 불필요한 확장

2. 너무 둔감한 설정

CPU 90% → 10분 후 확장
문제: 사용자가 느린 응답 경험

3. 적절한 설정 (권장)

Scale Out: CPU 70% 5분 지속
Scale In: CPU 30% 5분 지속

4. 상태 확인 (State-less 설계)

새로 생성되는 서버는 기존 서버와 완전히 독립적이어야 합니다:

완료 체크리스트

다음 개념을 이해했는지 확인:

실습 준비 정보

다음 단계에서 사용할 정보를 미리 확인해두세요:

WAS 서버 정보:

보안 그룹:

VPC/서브넷:


Auto Scaling 개념 이해 완료 이제 실제로 Launch Template을 만들어봅시다.

다음 단계: AWS EDU/Archive/조선대학교 AWS 멘토링/Week3.5-HA-Scalable-WebService/03-Auto-Scaling-Group/02-Launch-Template생성


관련 문서: AWS EDU/Archive/조선대학교 AWS 멘토링/Week3.5-HA-Scalable-WebService/02-Application-Load-Balancer/03-ALB생성및연결, AWS EDU/Archive/조선대학교 AWS 멘토링/Edu Architecture/README